package com.superpai.api;

import com.superpai.common.Constants;
import com.superpai.request.item.GetItemRequest;
import com.superpai.request.item.SellerSearchItemListRequest;
import com.superpai.response.item.GetItemResponse;
import com.superpai.response.item.SellerSearchItemListResponse;
import com.superpai.utils.DefaultClient;

/**
 * @author Devin.Hu
 * @date 2011-8-14
 * @version V1.0
 * @description 商品api
 */
public class ItemAPI extends BaseAPI {
	
	
	/**
	 * 卖家查询商品列表
	 * 
	 * @param sellerUin 卖家QQ号
	 * @param pageIndex 查询第几页
	 * @param pageSize 每页显示的记录数
	 * @param categoryId 店铺自定义分类，“0” 查询未分类商品
	 * @return
	 * @throws Exception
	 */
	public SellerSearchItemListResponse sellerSearchItemList(int sellerUin, int pageIndex , int pageSize, String categoryId) throws Exception{
        return sellerSearchItemList(sellerUin, pageIndex, pageSize, null, categoryId);
	}
	
	/**
	 * 卖家查询商品列表
	 * 
	 * @param sellerUin 卖家QQ号
	 * @param pageIndex 查询第几页
	 * @param pageSize 每页显示的记录数
	 * @param itemName 搜索关键字
	 * @param categoryId 店铺自定义分类，“0” 查询未分类商品
	 * @return
	 * @throws Exception
	 */
	public SellerSearchItemListResponse sellerSearchItemList(int sellerUin, int pageIndex , int pageSize, String itemName , String categoryId) throws Exception{
        return sellerSearchItemList(sellerUin, pageIndex, pageSize, itemName, categoryId, 1, 8);
	}
	
	/**
	 * 卖家查询商品列表
	 * 
	 * @param sellerUin 卖家QQ号
	 * @param pageIndex 查询第几页
	 * @param pageSize 每页显示的记录数
	 * @param itemName 搜索关键字
	 * @param categoryId 店铺自定义分类，“0” 查询未分类商品
	 * @param itemState 目标商品的状态
	 * @param orderType 标商品列表的排序方式
	 * @return
	 * @throws Exception
	 */
	public SellerSearchItemListResponse sellerSearchItemList(int sellerUin, int pageIndex , int pageSize, String itemName , String categoryId , int itemState , int orderType) throws Exception{
		
		SellerSearchItemListRequest req = new SellerSearchItemListRequest();
		req.setSellerUin(sellerUin);
		req.setPageIndex(pageIndex);
		req.setPageSize(pageSize);
		req.setItemName(itemName);
		req.setCategoryId(categoryId);
		req.setItemState(itemState);
		req.setOrderType(orderType);
        DefaultClient client = new DefaultClient(Constants.item_sellerSearchItemList, true);
        SellerSearchItemListResponse response = client.execute(req);
  
        return response;
	}
	
	
	/**
	 * 根据商品编码查询单个商品信息
	 * 
	 * @param itemCode
	 * @return
	 * @throws Exception 
	 */
	public GetItemResponse getItem(String itemCode) throws Exception
	{
		GetItemRequest req = new GetItemRequest();
		req.setItemCode(itemCode);
		req.setNeedParseAttr(0);
		req.setNeedDetailInfo(1);
		req.setNeedExtendInfo(1);
		DefaultClient client = new DefaultClient(Constants.item_getItem, true);
		GetItemResponse response = client.execute(req);
		return response;
	}
}
